import numpy as np
from numpy import nan
from numpy import isnan

array = np.array(((1, 2, 3), (5, 6, 7)))
print(array[0, 1])  # 输出第一行 第二列的元素

# bool index
nan_arr = np.array([1, 2, 3, nan, 5, 6])  # nan即为空, 浮点型
print(nan_arr)
print(nan_arr[~isnan(nan_arr)])  # 提取非nan值

# 花式索引
print("花式索引又是什么花里胡哨的东西")

print("我们开始修改数组了：")
x = np.array([[1, 2], [3, 4]])
print(x)
print(np.delete(x, 1, axis=0))  # 删除第二 1 + 1行
print(np.delete(x, 1, axis=1))  # 删除第二列   axis=1 为列   0为行

new_arr = np.append(x, [[4, 4]], axis=0)  # 增加一行
print(new_arr)

# 数组变形
print("现在来看看数组的变形之改变数组的维度")
arr_a = np.arange(9).reshape(3, 3)  # 9 elements 3 * 3
print(arr_a)
print(arr_a.reshape(9, ), '\n', arr_a)  # 不会影响原来的值
print("接下来arr_a的值要被改变了")
print(arr_a.resize(9), '\n', arr_a)  # 也就是resize()函数没有返回值， 直接作用在对象上

print("""后面还有很多数组的变形操作函数
详见书本44页""")

# ------本小节完------
